package com.pb.infra.taskManage.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * 流程管理
 * @author liaohaoyuan
 * @date 20210501
 */
@Mapper
@Repository
public interface ProcessManageMapper {

    /**
     *查询分页数据
     * @param paramMap
     * @return
     */
    List<Map<String,Object>> select(Map<String, Object> paramMap);

    /**
     *查询分页数据条数
     * @param paramMap
     * @return
     */
    Long selectCount(Map<String, Object> paramMap);

    /**
     * 查询流程下拉框数据
     * @return
     */
    List<Map<String,Object>> getProcedureData();

    /**
     * 获取sysNo最大值
     * @return
     */
    String selSysNo();

    /**
     * 新增流程
     * @param paramMap
     */
    void  save(Map<String, Object> paramMap);

    /**
     * 保存配置
     * @param sysNo
     * @param sysNm
     */
    void insertMaJobCfg(@Param("sysNo") String sysNo, @Param("sysNm") String sysNm);

    /**
     * 新增流程
     * @param paramMap
     */
    void insertMajob(Map<String, Object> paramMap);

    /**
     * 迁移关系
     * @param paramMap
     */
    void insertMaJobRelyCfg(Map<String, Object> paramMap);

    /**
     * 修改流程
     * @param paramMap
     */
    void update(Map<String, Object> paramMap);

    /**
     * 查询状态
     * @param paramList
     * @return
     */
    Integer selStatus(List<String> paramList);

    /**
     * 删除MA_SYS_DATE_CTL
     * @param paramList
     */
    void delDate(List<String> paramList);

    /**
     * 删除MA_JOB_STATUS_SCHEDULE
     * @param paramList
     */
    void delStatus(List<String> paramList);

    /**
     * 删除MA_JOB_EVENT_CFG
     * @param paramList
     */
    void delEvent(List<String> paramList);

    /**
     * 删除MA_JOB_RELY_CFG
     * @param paramList
     */
    void delRely(List<String> paramList);

    /**
     * 删除ma_job_cfg
     * @param paramList
     */
    void delJob(List<String> paramList);

    /**
     * 删除ma_mon_status
     * @param paramList
     */
    void delMon(List<String> paramList);

    /**
     * 查询状态
     * @param sysNo
     * @return
     */
    Integer checkStart(@Param("sysNo") String sysNo);

    /**
     *查询状态
     * @param sysNo
     * @return
     */
    Integer checkMonStart(@Param("sysNo") String sysNo);

    /**
     * 运行编号
     * @return
     */
    String checkCfgRunFlag();

    /**
     * 运行任务数量
     * @param sysNo
     * @return
     */
    Integer checkStatuSchedule(@Param("sysNo") String sysNo);

    /**
     * 启动任务
     * @param paramMap
     */
    void  startTask(Map<String, Object> paramMap);

    /**
     * 修改任务
     * @param paramMap
     */
    void  editStartTask(Map<String, Object> paramMap);

    /**
     * 删除ma_job_status_schedule
     * @param sysNo
     */
    void  delStatusSchedule(@Param("sysNo") String sysNo);

    /**
     * 停止
     * @param sysNo
     */
    void stopTask(@Param(("sysNo")) String sysNo);

    /**
     * 修改状态
     * @param sysNo
     */
    void editTask(@Param("sysNo") String sysNo);

    /**
     * 运行状态
     * @param sysNo
     * @return
     */
    Integer checkTaskSysStatus(@Param("sysNo") String sysNo);

    /**
     *继续任务
     * @param sysNo
     */
    void continueTask(@Param("sysNo") String sysNo);

    /**
     *删除ma_job_status_schedule
     * @param sysNo
     * @param dataDate
     */
    void delSchedule(@Param("sysNo") String sysNo, @Param("dataDate") String dataDate);

    /**
     *修改调度日期控制表
     * @param sysNo
     * @param date
     * @param lastDate
     * @param nextDate
     */
    void upDateCtl(@Param("sysNo") String sysNo, @Param("date") String date, @Param("lastDate") String lastDate, @Param("nextDate") String nextDate);

    /**
     *删除任务数据
     * @param paramMap
     */
    void deleteSchedule(Map<String, Object> paramMap);

    /**
     *修改任务数据
     * @param paramMap
     */
    void editDateCtl(Map<String, Object> paramMap);

    /**
     *新增任务数据
     * @param paramMap
     */
    void saveStatus(Map<String, Object> paramMap);

}
